
//function + ajax + promise
//步骤1.写ajax异步请求功能
//步骤2.写空get函数
//步骤3.1 放到 2 里面
//步骤4. 调整参数
//步骤5 最后利用promise解决接口数据不同逻辑问题





function get(url,params,_type,headers) {
    let p = new Promise((resolve, reject,type) => {
        let xhr = new XMLHttpRequest
        xhr.onreadystatechange = () => {
            if (xhr.readyState === 4) {
                if (xhr.status === 200) {
                    //获取数据
                    let res = xhr.responseText
                    if(_type === "json") res = JSON.parse(res)
                    //逻辑处理
                    // console.log('拿到数据', res);
                    resolve(res)
                } else {
                    // console.log('太废', xhr.status);
                    reject(xhr.status)
                }
            }
        }

        //搞空数组temp =【】
        let temp = []

        //params = {a:1,b:2}
        //遍历对象 key 是键也就是a/b 对象[key]是数据就是1或2

        for(let key in params){
        //push数组中 键= 值
            temp.push(`${key}=${params[key]}`)
        }
        //最后&数组边字符串
        xhr.open('get', `${url}?${temp.join("&")}`)

        for(let key in headers){
            xhr.setRequestHeader(key,headers[key])
        }


        xhr.send(null)
        // 13 promise方法get分装
    })

    return p
}